The use of Manchester encoded binary data in continuous or packet transmission of data is well-known, for example. In Manchester encoding, the code word 10 is associated to data or a bit with a logic value 1, while the code word 01 is associated to data with a logic value 0. In this way, the bits with a logic level 1 are encoded with a high level signal during the first half of the bit period and with a low level signal during the second half. On the contrary, bits with a logic level 0 are encoded with a low level signal during the first half of the bit period and with a high level signal during the second half. Consequently, there is always a transition at the center of each bit: low-to-high (upwards) for a logic 0 and high-to-low (downwards) for a logic 1.
A Manchester encoded binary data signal further includes transition at a bit start but only between adjacent bits with the same logic value. Typically, to obtain a Manchester encoded binary data signal, a clock signal having a frequency equal to the data transmission rate and the data signal are combined in an exclusive-OR logic OR gate EX-OR. The Manchester encoded data stream outputs from this gate. For simplicity, this data will be referred to hereinafter as Manchester data. Therefore, the transmission of a signal with Manchester data requires a data transmission rate twice that of the data stream before encoding.
One advantage deriving from the use of this encoding is that it is easier to recover the synchronization (clock) signal on reception, due to the high number of transitions in the encoded data. Another advantage derives from the possibility of detecting errors in the input data stream as violations of the permissible code sequence, (for example, the codes 00 and 11 are errors).
Numerous widely-used ways of decoding Manchester data on the reception side are well known. For example, it is possible to decode a Manchester data signal by accurately extracting the clock signal and then combine it in an EX-OR gate with the Manchester data. The binary data are obtained at the gate output.
This method has a disadvantage in that the clock signal to be recovered from the data must always be in phase with the received data. In this sense, the presence of jitters on the received data, in other words, fluctuations in the length of the bit period, presents a serious disadvantage.
Moreover, known systems for synchronization recovery require numerous training or preamble bits to reach a locking condition. These training bits are transmitted before the data. They do not carry information, and their function is to carry out synchronization. For this reason phase recovery is particularly disadvantageous for packet transmission, since it causes a considerable waste in transmission, especially if the packets include only a few bits.
Decoding methods not based on clock recovery are also known, such as described in U.S. Pat. No. 4,361,895. This method does not make use of clock recovery and requires over-sampling of the signal to be decoded and clocked by a local frequency reference. Decoding takes place by examining the value of samples in certain positions. The position of the samples is determined by using a local counter which counts the number of cycles of the local frequency reference, reset and started by the transitions at the center of every bit of the coded signal.
The decoders which use this method require a time reference (clock frequency) having very high precision both in transmission and in reception. For this reason, the performance of the decoders is compromised by aging and the thermal drift of the local references. Moreover, these decoders are not very tolerant of variations in the bit rate used in transmission and jitter.